<?php

namespace Sisesporte\Service;

use Doctrine\ORM\EntityManager;
use Sisesporte\Entity\PreMatricula;
use Sisesporte\Auth\PessoaAuth;
use Sisesporte\Utils\Email;

class PreMatriculaService extends AbstractService {

    protected $entity;

    public function __construct(EntityManager $em) {
        parent::__construct($em);
        $this->entity = "Sisesporte\Entity\PreMatricula";
        date_default_timezone_set('America/Sao_Paulo');
    }

    public function insert(array $data) {
       $pessoaAuth = new PessoaAuth();

        $sqTurma = $this->em->getReference('Sisesporte\Entity\Turma', $data['selPreMatricula1']);
        $sqAluno = $this->em->getReference('Sisesporte\Entity\Aluno', $pessoaAuth->getLoggedUser()->sqPessoa);
        $dataAtual = date('d/m/Y');

        $entityPreMatricula = new PreMatricula();
        $entityPreMatricula
                ->setStAtivo(TRUE)
                ->setSqTurma($sqTurma)
                ->setSqAluno($sqAluno)
                ->setNuOrdem((int) 0)
                ->setDtCadastro((string) $dataAtual)
                ->setStSorteio(0);

        $this->em->persist($entityPreMatricula);
        $this->em->flush();

//        if ($entityPreMatricula) {
//            $email = new Email();
//            $subject = "SisEsporte | Pré Matrícula Modalidade";
//            $html = "<p>Foi realizado uma pré-matrícula nos cursos.</p>";
//            $html.="<table>";
//            $html.="<tr>";
//            $html.="<th>Modalidade<th>";
//            $html.="<th>Turma<th>";
//            $html.="</tr>";
//            $html.="</table>";
//
//            $result = $email->sendEmail(
//                    array($pessoaAuth->getLoggedUser()->noEmail => $pessoaAuth->getLoggedUser()->noPessoa), $subject, $html
//            );
//
//            return ($result) ? $entityPreMatricula : FALSE;
//        } else {
//            return FALSE;
//        }
    }

    public function sorteados(array $data) {
        $count = 1;
        
        $entityTurma = $this->em->find("Sisesporte\Entity\Turma", $data['sqTurma']);

        foreach ($data['ordemSorteio'] as $ordem) {
            $stSorteio = ($count <= $data["nuVaga"]) ? TRUE : FALSE;

            $entity = $this->em->getReference($this->entity, $data['sqPreMatricula'][$ordem['value'] - 1]['value']);
            $entity->setStSorteio($stSorteio);
            $entity->setNuOrdem($ordem['value']);

            $this->em->persist($entity);
            $this->em->flush();
            if ($stSorteio) {
                $email = new Email();
                $subject = "SisEsporte | Sorteio de Modalidades";
                $html = "<p>Olá <strong>{$entity->getSqAluno()->getSqPessoa()->getNoPessoa()}</strong>,<br />
                    Você foi sorteado para a turma <strong>{$entityTurma->getCoTurma()}</strong> na modalidade <strong>{$entityTurma->getSqModalidadeProfessor()->getSqModalidade()->getNoModalidade()}</strong> nível <strong>{$entityTurma->getSqNivel()->getNoNivel()}</strong> todas as 
                    <strong>{$entityTurma->getSqTurmaDia()->getDeDia()}</strong> de <strong>{$entityTurma->getSqHorarioInicio()->getNoHorario()} às {$entityTurma->getSqHorarioTermino()->getNoHorario()}</strong> com o professor(a) <strong>{$entityTurma->getSqModalidadeProfessor()->getSqPessoa()->getSqPessoa()->getNoPessoa()}</strong>. Para finalizar sua matrícula compareça
                    na Secretaria de Esportes entre os dias <strong>{$entityTurma->getDtInicioTeste()} a {$entityTurma->getDtFimTeste()}</strong> para realização do teste.</p>
                    <p>Em caso de dúvidas favor entrar em contato pelo fone (61) 5555-5555 </p>
                    <p>Atencionsamente, <br />Equipe SisEsporte<br />
                    <a href=\"http://www.escola.esporte.df.gov.br\">www.escola.esporte.df.gov.br</a></p>";

                $email->sendEmail(array($entity->getSqAluno()->getSqPessoa()->getNoEmail() => $entity->getSqAluno()->getSqPessoa()->getNoPessoa()), $subject, $html);
            }

            $count++;
        }

        return TRUE;
    }

}
